﻿using GtsMotion;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace DN_3D
{
    static class Program
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
           // Application.EnableVisualStyles();
           // Application.SetCompatibleTextRenderingDefault(false);
          //  Application.Run(new Form1());
            System.Threading.Mutex yy;
            if (IsExistMutex("GtsMotion", out yy))  
            {
                MessageBox.Show("程序已启动");
                Application.Exit();         
                return;
            }
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new MotionForm());

        }
        private static bool IsExistMutex(string mutexName, out System.Threading.Mutex xx)
        {
            bool flag;
            //使用一个指示调用线程是否应拥有互斥体的初始所属权的布尔值、一个作为互斥体名称的字符串，
            //以及一个在方法返回时指示调用线程是否被授予互斥体的初始所属权的布尔值来初始化 Mutex 类的新实例。
            xx = new System.Threading.Mutex(true, mutexName, out flag);  //flag  为1时代表返回时调用线程被授予互斥体的初始所有权
            return !flag;
        }
    }
}
